// 点击 xcd 后更新当前位置信息
// 监听文档的 DOMContentLoaded 事件，当 HTML 文档加载并解析完成后触发
document.addEventListener('DOMContentLoaded', function () {
    // 获取所有具有 .xcd a 选择器的元素，即所有 xcd 链接元素
    const xcdElements = document.querySelectorAll('.xcd a');
    // 遍历所有 xcd 链接元素
    xcdElements.forEach(xcd => {
        // 为每个 xcd 链接元素的 click 事件添加监听器
        xcd.addEventListener('click', function (event) {
            // 阻止链接的默认跳转行为
            event.preventDefault();

            // 获取对应的 dcd 元素的文本内容
            // 通过 closest 方法找到最近的 .dcd-2 元素，再通过 previousElementSibling 获取其前一个兄弟元素（即 dcd 元素），并获取其文本内容
            const dcd = this.closest('.dcd-2').previousElementSibling.textContent.trim();
            // 获取 xcd 元素的文本内容
            const xcdText = this.textContent;

            // 更新当前位置信息
            // 通过 id 获取显示当前位置的元素
            const currentLocation = document.querySelector('#current-location');
            // 检查是否成功获取到显示当前位置的元素
            if (currentLocation) {
                // 更新当前位置元素的文本内容，显示当前位置信息
                currentLocation.textContent = ` >> ${dcd} >> ${xcdText}`;
            }

            // 获取名为 'XSWZ-iframe' 的 iframe 元素
            const adminIframe = document.getElementById('XSWZ-iframe');
            // 设置 iframe 的源为 xcd 链接的 href 属性值，即加载对应的页面
            adminIframe.src = this.href;
        });
    });
});



// 下面的代码不要动
// 点击 dcd 显示 xcd 的逻辑
// 监听文档的 DOMContentLoaded 事件，当 HTML 文档加载并解析完成后触发
document.addEventListener('DOMContentLoaded', function () {
    // 获取所有具有 .dcd 选择器的元素，即所有 dcd 元素
    const dcdElements = document.querySelectorAll('.dcd');
    // 定义一个变量用于存储当前活动的 dcd 元素
    let activeDcd = null;

    // 遍历所有 dcd 元素
    dcdElements.forEach(dcd => {
        // 为每个 dcd 元素的 click 事件添加监听器
        dcd.addEventListener('click', function (event) {
            // 阻止事件冒泡，防止事件传播到父元素
            event.stopPropagation();

            // 获取当前 dcd 元素的下一个兄弟元素
            const dcd2 = this.nextElementSibling;
            // 检查下一个兄弟元素是否存在且具有 .dcd-2 类名
            if (dcd2 && dcd2.classList.contains('dcd-2')) {
                // 移除之前活动的 dcd 的 active 类
                if (activeDcd && activeDcd !== this) {
                    // 获取之前活动的 dcd 的下一个兄弟元素
                    const activeDcd2 = activeDcd.nextElementSibling;
                    // 将之前活动的 dcd-2 元素的最大高度设置为 null，隐藏该元素
                    activeDcd2.style.maxHeight = null;
                    // 移除之前活动的 dcd 元素的 active 类
                    activeDcd.classList.remove('active');
                }

                // 切换当前 dcd 的状态
                if (dcd2.style.maxHeight) {
                    // 如果 dcd-2 元素已经展开，将其最大高度设置为 null，隐藏该元素
                    dcd2.style.maxHeight = null;
                    // 移除当前 dcd 元素的 active 类
                    this.classList.remove('active');
                    // 将当前活动的 dcd 元素设置为 null
                    activeDcd = null;
                } else {
                    // 计算 dcd-2 内容的高度
                    // 获取 dcd-2 元素的滚动高度，并将其设置为最大高度，展开该元素
                    dcd2.style.maxHeight = dcd2.scrollHeight + "px";
                    // 为当前 dcd 元素添加 active 类
                    this.classList.add('active');
                    // 将当前活动的 dcd 元素设置为当前点击的 dcd 元素
                    activeDcd = this;
                }
            }
        });
    });

    // 点击文档其他地方收回 xcd
    // 为文档的 click 事件添加监听器
    document.addEventListener('click', function (event) {
        // 检查点击事件的目标元素是否不在 .cdl 元素内
        if (!event.target.closest('.cdl')) {
            // 如果当前有活动的 dcd 元素
            if (activeDcd) {
                // 获取当前活动的 dcd 的下一个兄弟元素
                const activeDcd2 = activeDcd.nextElementSibling;
                // 将当前活动的 dcd-2 元素的最大高度设置为 null，隐藏该元素
                activeDcd2.style.maxHeight = null;
                // 移除当前活动的 dcd 元素的 active 类
                activeDcd.classList.remove('active');
                // 将当前活动的 dcd 元素设置为 null
                activeDcd = null;
            }
        }
    });
});


/*
// 点击 后台管理 后更新当前位置信息，并且显示内容在相应的区域代码
// 点击后台管理后更新当前位置信息并显示内容
document.addEventListener('DOMContentLoaded', function () {
    // 获取个人主页链接元素
    const profileLink = document.querySelector('.dhzysmx a[title="点击进入后台管理"]');
    if (profileLink) {
        profileLink.addEventListener('click', function (event) {
            event.preventDefault();
            
            // 设置当前位置信息
            const currentLocation = document.querySelector('#current-location');
            if (currentLocation) {
                currentLocation.textContent = ' >> 后台管理';
            }
            
            // 在xswz区域显示后台管理内容
            const adminIframe = document.getElementById('XSWZ-iframe');
            // 对应的页面路径为".html"
            adminIframe.src = 'management.html';
        });
    }
});
*/



// 后台管理链接的点击事件处理，根据用户角色显示不同文本和跳转页面
document.addEventListener('DOMContentLoaded', function () {
    // 获取后台管理链接元素及文本显示元素
    const adminLink = document.querySelector('#admin-link');
    const adminLinkText = adminLink.querySelector('.z'); // 获取显示文字的元素
    let currentUser = null;

    if (adminLink) {
        // 监听用户认证事件，获取当前登录用户信息
        window.electronAPI.onUserAuthenticated((event, user) => {
            currentUser = user;
            // 根据用户角色更新链接文本
            if (currentUser && currentUser.role !== '0') {
                adminLinkText.textContent = '个人主页';
                adminLink.title = '点击进入个人主页'; // 同时更新title提示
            }
        });

        adminLink.addEventListener('click', function (event) {
            event.preventDefault();
            
            // 设置当前位置信息
            const currentLocation = document.querySelector('#current-location');
            if (currentLocation) {
                // 根据用户角色显示不同位置文本
                currentLocation.textContent = currentUser && currentUser.role === '0' 
                    ? ' >> 后台管理' 
                    : ' >> 个人主页';
            }
            
            // 在xswz区域显示对应内容
            const contentIframe = document.getElementById('XSWZ-iframe');
            // 根据用户角色判断跳转页面（0为管理员，其他为普通用户）
            if (currentUser && currentUser.role === '0') {
                contentIframe.src = 'management.html';
            } else {
                contentIframe.src = 'user.html'; // 普通用户跳转到个人主页
            }
        });
    }
});




// 时间自动更新的代码
// 定义一个函数用于更新时间
function updateTime() {
    // 通过 id 获取显示当前时间的元素
    const currentTimeElement = document.getElementById('current-time');
    // 检查是否成功获取到显示当前时间的元素
    if (currentTimeElement) {
        // 创建一个 Date 对象，获取当前时间
        const now = new Date();
        // 获取当前年份
        const year = now.getFullYear();
        // 获取当前月份（注意：月份从 0 开始计数，所以要加 1），并将其格式化为两位数
        const month = String(now.getMonth() + 1).padStart(2, '0');
        // 获取当前日期，并将其格式化为两位数
        const day = String(now.getDate()).padStart(2, '0');
        // 获取当前小时数，并将其格式化为两位数
        const hours = String(now.getHours()).padStart(2, '0');
        // 获取当前分钟数，并将其格式化为两位数
        const minutes = String(now.getMinutes()).padStart(2, '0');
        // 获取当前秒数，并将其格式化为两位数
        const seconds = String(now.getSeconds()).padStart(2, '0');
        // 定义一个数组，存储星期几的中文名称
        const weekDays = ['星期日', '星期一', '星期二', '星期三', '星期四', '星期五', '星期六',]
        // 获取当前星期几的索引，并从数组中获取对应的中文名称
        const weekDay = weekDays[now.getDay()];
        // 拼接时间字符串，格式为 "年-月-日 时:分:秒 星期几"
        const timeString = `${year}年${month}月${day}日 ${hours}:${minutes}:${seconds} ${weekDay}`;
        // 更新显示当前时间的元素的文本内容
        currentTimeElement.textContent = timeString;
    }
}
// 页面加载完成后立即更新时间
// 监听文档的 DOMContentLoaded 事件，当 HTML 文档加载并解析完成后触发
document.addEventListener('DOMContentLoaded', function () {
    // 调用 updateTime 函数，立即更新时间
    updateTime();
    // 每秒更新一次时间，使用 setInterval 函数每隔 1000 毫秒（即 1 秒）调用一次 updateTime 函数
    setInterval(updateTime, 1000);
});



// 以下代码是退出弹窗的相关代码
document.addEventListener('DOMContentLoaded', function() {
  const logoutLink = document.getElementById('logout-link');
  const confirmDialog = document.getElementById('logout-confirm');
  const confirmButton = document.getElementById('confirm-logout');
  const cancelButton = document.getElementById('cancel-logout');
  
  // 点击退出链接时显示确认对话框
  logoutLink.addEventListener('click', function(e) {
    e.preventDefault();
    confirmDialog.style.display = 'flex';
  });
  
  // 确认退出
  confirmButton.addEventListener('click', function() {
    // 通过 preload.js 暴露的 API 发送退出请求
    window.electronAPI.sendLogoutRequest();
    confirmDialog.style.display = 'none';
  });
  
  // 取消退出
  cancelButton.addEventListener('click', function() {
    confirmDialog.style.display = 'none';
  });
});

